package com.ms.qw.infraestructura.services;

import com.ms.qw.domain.service.UsuarioService;
import org.springframework.stereotype.Service;

/**
 * User: allona
 * Date: 15/05/12
 */
@Service
public class UsuarioServiceImpl implements UsuarioService {
/*
    @Autowired
    UsuarioRepository repository;

    @Autowired
    private DTOMapperService mapperService;

    public List<Usuario> findByIds(List<Long> ids) {
       return repository.findByIds(ids);
    }
    public List<UsuarioDTO> findAll() {
        List<Usuario> cadenas=repository.findAll();
        List<UsuarioDTO> resultado=new ArrayList<UsuarioDTO>();

        for(Usuario model:cadenas){
            UsuarioDTO dto= mapperService.map(model, UsuarioDTO.class);
            resultado.add(dto);
        }
        return resultado;
    }

    public List<Usuario> findAllCadenas() {
        return repository.findAll();
    }

    public List<UsuarioDTO> findByFilter(UsuarioDTO filtro) {
        Usuario cadena = mapperService.map(filtro, Usuario.class);
        List<Usuario> list= repository.findByFilter(cadena);
        
        List<UsuarioDTO> resultado=new ArrayList<UsuarioDTO>();
       
        for(Usuario model:list){
            UsuarioDTO dto=mapperService.map(model,UsuarioDTO.class);
            resultado.add(dto);
        }
        return resultado;
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void save(UsuarioDTO cadenaDTO,boolean updateMode) {
        Usuario cadena=mapperService.map(cadenaDTO, Usuario.class);
        if(updateMode){
            repository.merge(cadena);
        }else{
            repository.persist(cadena);
        }

    }

    @Transactional
    public void update(UsuarioDTO anterior) {
        Usuario cadena=mapperService.map(anterior, Usuario.class);
        repository.merge(cadena);
    }

    @Transactional
    public UsuarioDTO findByCode(Long code){
        Usuario usuario=  repository.find(code);

        return mapperService.map(usuario, UsuarioDTO.class);
    }

    @Transactional
    public List<Usuario> findByRUC(String ruc) {
        List<Usuario> list = new ArrayList<Usuario>();
        if(ruc!=null){
            list= repository.findByRUC(ruc);
        }
        return list;
    }*/
}
